package com.xquant.common.engine.xPP.request;

import com.fasterxml.jackson.annotation.JsonInclude;

import java.math.BigDecimal;
import java.util.List;
import java.util.StringJoiner;

@JsonInclude(JsonInclude.Include.NON_NULL)
public class CalcInstrumentForm {

    private String id;
    private String productType;
    private String initProductType;
    private String calcType;
    private String upName;
    private String valueDate;
    private String calcDate;
    private String optionType;
    private String underlyerId;
    private String partyId;

    private String upInitRequest;
    private String upPkRequest;
    private String upRequest;
    private String upResponse;
    private String upRequestTime;
    private String upResponseTime;
    private String upUserId;

    private String calcServer;
    private String iCode;
    private String aType;
    private String mType;
    private String logType;
    private String memo;
    private String status;

    /**************期权参数***************/
    private String payDirection;
    private String strike;
    private String instrumentId;
    private String strikePercentage;
    private String exerciseType;
    private String calendar;
    private String effectiveDate;
    private String terminationDate;
    private String terminationPaymentDate;

    private Long term;
    private Long paymentDaysOffset;
    private String priceOnWait;
    private BigDecimal spotPrice = BigDecimal.ZERO;

    private BigDecimal notional = BigDecimal.ZERO;
    private BigDecimal triggerRate = BigDecimal.ZERO;
    private BigDecimal rebateRate = BigDecimal.ZERO;
    private BigDecimal lowTriggerRate = BigDecimal.ZERO;
    private BigDecimal lowRebateRate = BigDecimal.ZERO;

    private BigDecimal triggerPrice = BigDecimal.ZERO;
    private BigDecimal rebatePrice = BigDecimal.ZERO;
    private BigDecimal lowTriggerPrice = BigDecimal.ZERO;
    private BigDecimal lowRebatePrice = BigDecimal.ZERO;


    private BigDecimal midPaymentAmountPecentage = BigDecimal.ZERO;
    private BigDecimal minYieldRate = BigDecimal.ZERO;
    /*
     * 多层二元结构
     * */
    private BigDecimal lowStrikePercentage = BigDecimal.ZERO;
    private BigDecimal lowStrike = BigDecimal.ZERO;
    private BigDecimal paymentAmount = BigDecimal.ZERO;

    private BigDecimal midPaymentAmount = BigDecimal.ZERO;

    private BigDecimal lowPaymentAmountPecentage = BigDecimal.ZERO;


    public BigDecimal getLowStrikePercentage() {
        return lowStrikePercentage;
    }

    public CalcInstrumentForm setLowStrikePercentage(BigDecimal lowStrikePercentage) {
        this.lowStrikePercentage = lowStrikePercentage;
        return this;
    }

    public BigDecimal getLowStrike() {
        return lowStrike;
    }

    public CalcInstrumentForm setLowStrike(BigDecimal lowStrike) {
        this.lowStrike = lowStrike;
        return this;
    }

    public BigDecimal getMidPaymentAmountPecentage() {
        return midPaymentAmountPecentage;
    }

    public BigDecimal getLowTriggerRate() {
        return lowTriggerRate;
    }

    public void setLowTriggerRate(BigDecimal lowTriggerRate) {
        this.lowTriggerRate = lowTriggerRate;
    }

    public BigDecimal getLowRebateRate() {
        return lowRebateRate;
    }

    public void setLowRebateRate(BigDecimal lowRebateRate) {
        this.lowRebateRate = lowRebateRate;
    }

    public BigDecimal getTriggerPrice() {
        return triggerPrice;
    }

    public void setTriggerPrice(BigDecimal triggerPrice) {
        this.triggerPrice = triggerPrice;
    }

    public BigDecimal getRebatePrice() {
        return rebatePrice;
    }

    public void setRebatePrice(BigDecimal rebatePrice) {
        this.rebatePrice = rebatePrice;
    }

    public BigDecimal getLowTriggerPrice() {
        return lowTriggerPrice;
    }

    public void setLowTriggerPrice(BigDecimal lowTriggerPrice) {
        this.lowTriggerPrice = lowTriggerPrice;
    }

    public BigDecimal getLowRebatePrice() {
        return lowRebatePrice;
    }

    public void setLowRebatePrice(BigDecimal lowRebatePrice) {
        this.lowRebatePrice = lowRebatePrice;
    }

    public void setMidPaymentAmountPecentage(BigDecimal midPaymentAmountPecentage) {
        this.midPaymentAmountPecentage = midPaymentAmountPecentage;
    }

    @Override
    public String toString() {
        return "CalcInstrumentForm{" +
                "id='" + id + '\'' +
                ", productType='" + productType + '\'' +
                ", initProductType='" + initProductType + '\'' +
                ", calcType='" + calcType + '\'' +
                ", upName='" + upName + '\'' +
                ", valueDate='" + valueDate + '\'' +
                ", calcDate='" + calcDate + '\'' +
                ", optionType='" + optionType + '\'' +
                ", underlyerId='" + underlyerId + '\'' +
                ", partyId='" + partyId + '\'' +
                ", upInitRequest='" + upInitRequest + '\'' +
                ", upPkRequest='" + upPkRequest + '\'' +
                ", upRequest='" + upRequest + '\'' +
                ", upResponse='" + upResponse + '\'' +
                ", upRequestTime='" + upRequestTime + '\'' +
                ", upResponseTime='" + upResponseTime + '\'' +
                ", upUserId='" + upUserId + '\'' +
                ", calcServer='" + calcServer + '\'' +
                ", iCode='" + iCode + '\'' +
                ", aType='" + aType + '\'' +
                ", mType='" + mType + '\'' +
                ", logType='" + logType + '\'' +
                ", memo='" + memo + '\'' +
                ", status='" + status + '\'' +
                ", payDirection='" + payDirection + '\'' +
                ", strike='" + strike + '\'' +
                ", instrumentId='" + instrumentId + '\'' +
                ", strikePercentage='" + strikePercentage + '\'' +
                ", exerciseType='" + exerciseType + '\'' +
                ", calendar='" + calendar + '\'' +
                ", effectiveDate='" + effectiveDate + '\'' +
                ", terminationDate='" + terminationDate + '\'' +
                ", terminationPaymentDate='" + terminationPaymentDate + '\'' +
                ", term=" + term +
                ", paymentDaysOffset=" + paymentDaysOffset +
                ", priceOnWait='" + priceOnWait + '\'' +
                ", spotPrice=" + spotPrice +
                ", notional=" + notional +
                ", triggerRate=" + triggerRate +
                ", rebateRate=" + rebateRate +
                ", lowTriggerRate=" + lowTriggerRate +
                ", lowRebateRate=" + lowRebateRate +
                ", triggerPrice=" + triggerPrice +
                ", rebatePrice=" + rebatePrice +
                ", lowTriggerPrice=" + lowTriggerPrice +
                ", lowRebatePrice=" + lowRebatePrice +
                ", midPaymentAmountPecentage=" + midPaymentAmountPecentage +
                ", minYieldRate=" + minYieldRate +
                ", lowStrikePercentage=" + lowStrikePercentage +
                ", lowStrike=" + lowStrike +
                ", paymentAmount=" + paymentAmount +
                ", midPaymentAmount=" + midPaymentAmount +
                ", lowPaymentAmountPecentage=" + lowPaymentAmountPecentage +
                ", lowPaymentAmount=" + lowPaymentAmount +
                ", paymentAmountPecentage=" + paymentAmountPecentage +
                ", optionEntitlement=" + optionEntitlement +
                ", moneynessOption=" + moneynessOption +
                ", midMoneynessOption=" + midMoneynessOption +
                ", lowMoneynessOption=" + lowMoneynessOption +
                ", daycounter='" + daycounter + '\'' +
                ", participationRate=" + participationRate +
                ", daycounterTerm='" + daycounterTerm + '\'' +
                ", isIncludeEndDate='" + isIncludeEndDate + '\'' +
                ", endDate='" + endDate + '\'' +
                ", isIncludeStartDate='" + isIncludeStartDate + '\'' +
                ", startDate='" + startDate + '\'' +
                ", filterList='" + filterList + '\'' +
                ", fixedRate=" + fixedRate +
                ", singleSection=" + singleSection +
                ", sections=" + sections +
                ", singleSectionHidden=" + singleSectionHidden +
                ", konckLevelPercentage=" + konckLevelPercentage +
                ", MarginYieldYear='" + MarginYieldYear + '\'' +
                ", MarginYield='" + MarginYield + '\'' +
                ", cbxTriggerType='" + cbxTriggerType + '\'' +
                ", levelPercentage='" + levelPercentage + '\'' +
                ", unKnockOutYield=" + unKnockOutYield +
                ", knockOutYield=" + knockOutYield +
                ", unKnockOutYieldYear='" + unKnockOutYieldYear + '\'' +
                ", knockOutYieldYear='" + knockOutYieldYear + '\'' +
                ", ObserFrequency='" + ObserFrequency + '\'' +
                ", effectiveDateConv='" + effectiveDateConv + '\'' +
                ", terminationDateConv='" + terminationDateConv + '\'' +
                ", paymentDateConv='" + paymentDateConv + '\'' +
                ", cbxTriggerTypeKonckIn='" + cbxTriggerTypeKonckIn + '\'' +
                ", knockInLevelPercentage=" + knockInLevelPercentage +
                ", knockInStrikePercentage='" + knockInStrikePercentage + '\'' +
                ", knockInParticipationRate='" + knockInParticipationRate + '\'' +
                ", KonckInObserFrequency='" + KonckInObserFrequency + '\'' +
                ", knockInMoneynessOption='" + knockInMoneynessOption + '\'' +
                ", payStyle='" + payStyle + '\'' +
                ", rebateParticipationRate='" + rebateParticipationRate + '\'' +
                '}';
    }

    public BigDecimal getPaymentAmountPecentage() {
        return paymentAmountPecentage;
    }

    public void setPaymentAmountPecentage(BigDecimal paymentAmountPecentage) {
        this.paymentAmountPecentage = paymentAmountPecentage;
    }

    public BigDecimal getLowPaymentAmountPecentage() {
        return lowPaymentAmountPecentage;
    }

    public BigDecimal getTriggerRate() {
        return triggerRate;
    }

    public void setTriggerRate(BigDecimal triggerRate) {
        this.triggerRate = triggerRate;
    }

    public BigDecimal getRebateRate() {
        return rebateRate;
    }

    public void setRebateRate(BigDecimal rebateRate) {
        this.rebateRate = rebateRate;
    }

    public BigDecimal getMinYieldRate() {
        return minYieldRate;
    }

    public void setMinYieldRate(BigDecimal minYieldRate) {
        this.minYieldRate = minYieldRate;
    }

    public void setLowPaymentAmountPecentage(BigDecimal lowPaymentAmountPecentage) {
        this.lowPaymentAmountPecentage = lowPaymentAmountPecentage;
    }

    public BigDecimal getMidPaymentAmount() {
        return midPaymentAmount;
    }

    public void setMidPaymentAmount(BigDecimal midPaymentAmount) {
        this.midPaymentAmount = midPaymentAmount;
    }

    public BigDecimal getLowPaymentAmount() {
        return lowPaymentAmount;
    }

    public void setLowPaymentAmount(BigDecimal lowPaymentAmount) {
        this.lowPaymentAmount = lowPaymentAmount;
    }

    private BigDecimal lowPaymentAmount = BigDecimal.ZERO;
    private BigDecimal paymentAmountPecentage = BigDecimal.ZERO;
    private BigDecimal optionEntitlement = BigDecimal.ZERO;
    private Object moneynessOption;

    private Object midMoneynessOption;
    private Object lowMoneynessOption;


    public Object getLowMoneynessOption() {
        return lowMoneynessOption;
    }

    public void setLowMoneynessOption(Object lowMoneynessOption) {
        this.lowMoneynessOption = lowMoneynessOption;
    }

    private String daycounter;
    private BigDecimal participationRate = BigDecimal.ZERO;

    private String daycounterTerm;
    private String isIncludeEndDate;
    private String endDate;
    private String isIncludeStartDate;
    private String startDate;
    private String filterList;
    private BigDecimal fixedRate=BigDecimal.ZERO;
    /*
     * 区间累计单独使用
     * 简单区间上下限
     * */
    private singleSection singleSection;
    //    区间累计的实际区间数据, 当sections区间数据和singleSection数据不一致时，优先使用sections内数据渲染界面
    private List sections;
    //    开关，为true时,使用sections中的数据渲染。并且失效掉singleSection中数据
    private Boolean singleSectionHidden;

    public Boolean getSingleSectionHidden() {
        return singleSectionHidden;
    }

    public void setSingleSectionHidden(Boolean singleSectionHidden) {
        this.singleSectionHidden = singleSectionHidden;
    }

    public List getSections() {
        return sections;
    }

    public void setSections(List sections) {
        this.sections = sections;
    }

    public com.xquant.common.engine.xPP.request.singleSection getSingleSection() {
        return singleSection;
    }

    public CalcInstrumentForm setSingleSection(com.xquant.common.engine.xPP.request.singleSection singleSection) {
        this.singleSection = singleSection;
        return this;
    }

    public BigDecimal getFixedRate() {
        return fixedRate;
    }

    public BigDecimal getPaymentAmount() {
        return paymentAmount;
    }

    public void setPaymentAmount(BigDecimal paymentAmount) {
        this.paymentAmount = paymentAmount;
    }

    public void setFixedRate(BigDecimal fixedRate) {
        this.fixedRate = fixedRate;
    }

    public String getPartyId() {
        return partyId;
    }

    public void setPartyId(String partyId) {
        this.partyId = partyId;
    }


    public Long getTerm() {
        return term;
    }

    public CalcInstrumentForm setTerm(Long term) {
        this.term = term;
        return this;
    }

    public Long getPaymentDaysOffset() {
        return paymentDaysOffset;
    }

    public CalcInstrumentForm setPaymentDaysOffset(Long paymentDaysOffset) {
        this.paymentDaysOffset = paymentDaysOffset;
        return this;
    }

    public BigDecimal getNotional() {
        return notional;
    }

    public CalcInstrumentForm setNotional(BigDecimal notional) {
        this.notional = notional;
        return this;
    }

    public String getPriceOnWait() {
        return priceOnWait;
    }

    public void setPriceOnWait(String priceOnWait) {
        this.priceOnWait = priceOnWait;
    }

    public BigDecimal getSpotPrice() {
        return spotPrice;
    }

    public void setSpotPrice(BigDecimal spotPrice) {
        this.spotPrice = spotPrice;
    }


    public BigDecimal getOptionEntitlement() {
        return optionEntitlement;
    }

    public void setOptionEntitlement(BigDecimal optionEntitlement) {
        this.optionEntitlement = optionEntitlement;
    }


    public String getDaycounter() {
        return daycounter;
    }

    public void setDaycounter(String daycounter) {
        this.daycounter = daycounter;
    }

    public Object getMoneynessOption() {
        return moneynessOption;
    }

    public void setMoneynessOption(Object moneynessOption) {
        this.moneynessOption = moneynessOption;
    }

    public BigDecimal getParticipationRate() {
        return participationRate;
    }

    public CalcInstrumentForm setParticipationRate(BigDecimal participationRate) {
        this.participationRate = participationRate;
        return this;
    }
    public Object getMidMoneynessOption() {
        return midMoneynessOption;
    }

    public void setMidMoneynessOption(Object midMoneynessOption) {
        this.midMoneynessOption = midMoneynessOption;
    }

    public String getDaycounterTerm() {
        return daycounterTerm;
    }

    public void setDaycounterTerm(String daycounterTerm) {
        this.daycounterTerm = daycounterTerm;
    }

    public String getIsIncludeEndDate() {
        return isIncludeEndDate;
    }

    public void setIsIncludeEndDate(String isIncludeEndDate) {
        this.isIncludeEndDate = isIncludeEndDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public String getIsIncludeStartDate() {
        return isIncludeStartDate;
    }

    public void setIsIncludeStartDate(String isIncludeStartDate) {
        this.isIncludeStartDate = isIncludeStartDate;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getFilterList() {
        return filterList;
    }

    public void setFilterList(String filterList) {
        this.filterList = filterList;
    }

    public String getPayDirection() {
        return payDirection;
    }

    public void setPayDirection(String payDirection) {
        this.payDirection = payDirection;
    }

    public String getStrike() {
        return strike;
    }

    public void setStrike(String strike) {
        this.strike = strike;
    }

    public String getInstrumentId() {
        return instrumentId;
    }

    public void setInstrumentId(String instrumentId) {
        this.instrumentId = instrumentId;
    }

    public String getStrikePercentage() {
        return strikePercentage;
    }

    public void setStrikePercentage(String strikePercentage) {
        this.strikePercentage = strikePercentage;
    }

    public String getExerciseType() {
        return exerciseType;
    }

    public void setExerciseType(String exerciseType) {
        this.exerciseType = exerciseType;
    }

    public String getCalendar() {
        return calendar;
    }

    public void setCalendar(String calendar) {
        this.calendar = calendar;
    }

    public String getEffectiveDate() {
        return effectiveDate;
    }

    public void setEffectiveDate(String effectiveDate) {
        this.effectiveDate = effectiveDate;
    }

    public String getTerminationDate() {
        return terminationDate;
    }

    public void setTerminationDate(String terminationDate) {
        this.terminationDate = terminationDate;
    }

    public String getTerminationPaymentDate() {
        return terminationPaymentDate;
    }

    public void setTerminationPaymentDate(String terminationPaymentDate) {
        this.terminationPaymentDate = terminationPaymentDate;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getProductType() {
        return productType;
    }

    public void setProductType(String productType) {
        this.productType = productType;
    }

    public String getInitProductType() {
        return initProductType;
    }

    public void setInitProductType(String initProductType) {
        this.initProductType = initProductType;
    }

    public String getCalcType() {
        return calcType;
    }

    public void setCalcType(String calcType) {
        this.calcType = calcType;
    }

    public String getUpName() {
        return upName;
    }

    public void setUpName(String upName) {
        this.upName = upName;
    }

    public String getValueDate() {
        return valueDate;
    }

    public void setValueDate(String valueDate) {
        this.valueDate = valueDate;
    }

    public String getCalcDate() {
        return calcDate;
    }

    public void setCalcDate(String calcDate) {
        this.calcDate = calcDate;
    }

    public String getOptionType() {
        return optionType;
    }

    public void setOptionType(String optionType) {
        this.optionType = optionType;
    }

    public String getUnderlyerId() {
        return underlyerId;
    }

    public void setUnderlyerId(String underlyerId) {
        this.underlyerId = underlyerId;
    }

    public String getUpInitRequest() {
        return upInitRequest;
    }

    public void setUpInitRequest(String upInitRequest) {
        this.upInitRequest = upInitRequest;
    }

    public String getUpPkRequest() {
        return upPkRequest;
    }

    public void setUpPkRequest(String upPkRequest) {
        this.upPkRequest = upPkRequest;
    }

    public String getUpRequest() {
        return upRequest;
    }

    public void setUpRequest(String upRequest) {
        this.upRequest = upRequest;
    }

    public String getUpResponse() {
        return upResponse;
    }

    public void setUpResponse(String upResponse) {
        this.upResponse = upResponse;
    }

    public String getUpRequestTime() {
        return upRequestTime;
    }

    public void setUpRequestTime(String upRequestTime) {
        this.upRequestTime = upRequestTime;
    }

    public String getUpResponseTime() {
        return upResponseTime;
    }

    public void setUpResponseTime(String upResponseTime) {
        this.upResponseTime = upResponseTime;
    }

    public String getUpUserId() {
        return upUserId;
    }

    public void setUpUserId(String upUserId) {
        this.upUserId = upUserId;
    }

    public String getCalcServer() {
        return calcServer;
    }

    public void setCalcServer(String calcServer) {
        this.calcServer = calcServer;
    }

    public String getiCode() {
        if (getInstrumentId().isEmpty()) {
            return iCode;
        } else {
            return getInstrumentId().split(",")[0];
        }
    }

    public void setiCode(String iCode) {
        this.iCode = iCode;
    }

    public String getaType() {
        if (getInstrumentId().isEmpty()) {
            return aType;
        } else {
            return getInstrumentId().split(",")[1];
        }
    }

    public void setaType(String aType) {
        this.aType = aType;
    }

    public String getmType() {
        if (getInstrumentId().isEmpty()) {
            return mType;
        } else {
            return getInstrumentId().split(",")[2];
        }
    }

    public void setmType(String mType) {
        this.mType = mType;
    }

    public String getLogType() {
        return logType;
    }

    public void setLogType(String logType) {
        this.logType = logType;
    }

    public String getMemo() {
        return memo;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    /*雪球专用*/
    private BigDecimal konckLevelPercentage = BigDecimal.ZERO;
    private String MarginYieldYear;
    private String MarginYield;
    private String cbxTriggerType;
    private String levelPercentage;
    private BigDecimal unKnockOutYield = BigDecimal.ZERO;
    private BigDecimal knockOutYield = BigDecimal.ZERO;
    private String unKnockOutYieldYear;
    private String knockOutYieldYear;
    private String ObserFrequency;
    private String effectiveDateConv;
    private String terminationDateConv;
    private String paymentDateConv;
    private String cbxTriggerTypeKonckIn;
    private BigDecimal knockInLevelPercentage = BigDecimal.ZERO;
    private String knockInStrikePercentage;
    private String knockInParticipationRate;
    private String KonckInObserFrequency;
    private String knockInMoneynessOption;

    private String payStyle; //支付方式

    private String rebateParticipationRate; //补偿参与率

    public String getRebateParticipationRate() {
        return rebateParticipationRate;
    }

    public CalcInstrumentForm setRebateParticipationRate(String rebateParticipationRate) {
        this.rebateParticipationRate = rebateParticipationRate;
        return this;
    }

    public String getPayStyle() {
        return payStyle;
    }

    public CalcInstrumentForm setPayStyle(String payStyle) {
        this.payStyle = payStyle;
        return this;
    }

    public BigDecimal getKonckLevelPercentage() {
        return konckLevelPercentage;
    }

    public CalcInstrumentForm setKonckLevelPercentage(BigDecimal konckLevelPercentage) {
        this.konckLevelPercentage = konckLevelPercentage;
        return this;
    }

    public String getMarginYieldYear() {
        return MarginYieldYear;
    }

    public CalcInstrumentForm setMarginYieldYear(String marginYieldYear) {
        MarginYieldYear = marginYieldYear;
        return this;
    }

    public String getMarginYield() {
        return MarginYield;
    }

    public CalcInstrumentForm setMarginYield(String marginYield) {
        MarginYield = marginYield;
        return this;
    }

    public String getCbxTriggerType() {
        return cbxTriggerType;
    }

    public CalcInstrumentForm setCbxTriggerType(String cbxTriggerType) {
        this.cbxTriggerType = cbxTriggerType;
        return this;
    }

    public String getLevelPercentage() {
        return levelPercentage;
    }

    public CalcInstrumentForm setLevelPercentage(String levelPercentage) {
        this.levelPercentage = levelPercentage;
        return this;
    }

    public BigDecimal getUnKnockOutYield() {
        return unKnockOutYield;
    }

    public CalcInstrumentForm setUnKnockOutYield(BigDecimal unKnockOutYield) {
        this.unKnockOutYield = unKnockOutYield;
        return this;
    }

    public BigDecimal getKnockOutYield() {
        return knockOutYield;
    }

    public CalcInstrumentForm setKnockOutYield(BigDecimal knockOutYield) {
        this.knockOutYield = knockOutYield;
        return this;
    }

    public String getUnKnockOutYieldYear() {
        return unKnockOutYieldYear;
    }

    public CalcInstrumentForm setUnKnockOutYieldYear(String unKnockOutYieldYear) {
        this.unKnockOutYieldYear = unKnockOutYieldYear;
        return this;
    }

    public String getKnockOutYieldYear() {
        return knockOutYieldYear;
    }

    public CalcInstrumentForm setKnockOutYieldYear(String knockOutYieldYear) {
        this.knockOutYieldYear = knockOutYieldYear;
        return this;
    }

    public String getObserFrequency() {
        return ObserFrequency;
    }

    public CalcInstrumentForm setObserFrequency(String obserFrequency) {
        ObserFrequency = obserFrequency;
        return this;
    }

    public String getEffectiveDateConv() {
        return effectiveDateConv;
    }

    public CalcInstrumentForm setEffectiveDateConv(String effectiveDateConv) {
        this.effectiveDateConv = effectiveDateConv;
        return this;
    }

    public String getTerminationDateConv() {
        return terminationDateConv;
    }

    public CalcInstrumentForm setTerminationDateConv(String terminationDateConv) {
        this.terminationDateConv = terminationDateConv;
        return this;
    }

    public String getPaymentDateConv() {
        return paymentDateConv;
    }

    public CalcInstrumentForm setPaymentDateConv(String paymentDateConv) {
        this.paymentDateConv = paymentDateConv;
        return this;
    }

    public String getCbxTriggerTypeKonckIn() {
        return cbxTriggerTypeKonckIn;
    }

    public CalcInstrumentForm setCbxTriggerTypeKonckIn(String cbxTriggerTypeKonckIn) {
        this.cbxTriggerTypeKonckIn = cbxTriggerTypeKonckIn;
        return this;
    }

    public BigDecimal getKnockInLevelPercentage() {
        return knockInLevelPercentage;
    }

    public CalcInstrumentForm setKnockInLevelPercentage(BigDecimal knockInLevelPercentage) {
        this.knockInLevelPercentage = knockInLevelPercentage;
        return this;
    }

    public String getKnockInStrikePercentage() {
        return knockInStrikePercentage;
    }

    public CalcInstrumentForm setKnockInStrikePercentage(String knockInStrikePercentage) {
        this.knockInStrikePercentage = knockInStrikePercentage;
        return this;
    }

    public String getKnockInParticipationRate() {
        return knockInParticipationRate;
    }

    public CalcInstrumentForm setKnockInParticipationRate(String knockInParticipationRate) {
        this.knockInParticipationRate = knockInParticipationRate;
        return this;
    }

    public String getKonckInObserFrequency() {
        return KonckInObserFrequency;
    }

    public CalcInstrumentForm setKonckInObserFrequency(String konckInObserFrequency) {
        KonckInObserFrequency = konckInObserFrequency;
        return this;
    }

    public String getKnockInMoneynessOption() {
        return knockInMoneynessOption;
    }

    public CalcInstrumentForm setKnockInMoneynessOption(String knockInMoneynessOption) {
        this.knockInMoneynessOption = knockInMoneynessOption;
        return this;
    }


}
